package edu.mis.modules.commodity;

import com.jfinal.aop.Before;
import com.jfinal.aop.Clear;
import com.jfinal.core.Controller;

import edu.mis.model.Commodity;
import edu.mis.model.Commodtype;
import edu.mis.model.Customer;
import edu.mis.model.Role;
import edu.mis.model.User;
import edu.mis.modules.user.LoginInterceptor;
import edu.mis.modules.user.LoginValidator;
import edu.mis.modules.user.UserService;

/**
 * 日志控制器
 *
 */
public class CommodityController extends Controller {
	
	static CommodityService service = new CommodityService();
	
	public void index() {
		render("commodity.html");
	}
	
	public void list(){
		setAttr("data", service.findAllCommodityWithCommodtype());
		renderJson();  
	}

	/**
	 * 注册用户视图
	 */
	public void add() {
		render("add.html");
		setAttr("commodtype",Commodtype.dao.findAll());//得到下拉框的内容
		    //  //（默认对应add.html，否则需显性指定，如render("addUser.html")）
	}

	public void register(){
		Commodity commodity  =  getModel(Commodity.class);   //使用getModel方法获取表单值，表单中name应使用对象名.属性名，如user.id, user.password,详见jfinal手册
		if(service.saveCommodity(commodity)){
			setAttr("result", true); 
			setAttr("msg", "添加新商品成功!"); 
		}else{
			setAttr("result",false);
			setAttr("msg", "添加失败，商品名重复!"); 
		}
		renderJson(); 
	}
	
	public void edit() {
		setAttr("commodity", service.findCommodityById(getParaToInt("id")));  //此处user应与表单中${(user.name)!}等中的user保持一致。
		setAttr("commodtype",Commodtype.dao.findAll());//得到下拉框的内容
	}
	
	public void updateTypeId(){
		int id=this.getParaToInt("id");
		double price=Double.valueOf(this.getPara("price"));
		int typeId = this.getParaToInt("typeId");		
		if(service.updateCommodity(id,typeId,price)){
			setAttr("result", true);
			setAttr("msg", "修改客户信息成功!");
		}else{
			setAttr("result", false);
			setAttr("msg", "~~~!");
		}
		renderJson();
	}
	/**
	 * 用户授权视图
	 */
	public void auth() {
		setAttr("commodity", service.findCommodityById(getParaToInt("id")));  //此处commodity应与表单中${(commodity.name)!}等中的user保持一致。
		setAttr("commodtype",Commodtype.dao.findAll());//授权前得到所有权限
	}
	
	public void authorize(){
		int id=this.getParaToInt("id");   
		int typeId = this.getParaToInt("typeId");
		if(service.commodityAuthorize(id, typeId)){
			setAttr("result", true);
			setAttr("msg", "用户授权成功!");
		}else{
			setAttr("result", false);
		}
		renderJson();
	}
	
	public void delete() {
		if(service.deleteCommodityById(getParaToInt("id"))){
			setAttr("result", true);
			setAttr("msg", "删除客户成功!");
		}else{
			setAttr("result", false);
		}
		renderJson();
	}

}


